DECF         : (DECrement F)
Décrémente f et range le résultat dans d

(f) - 1   ->   (d)
f est l'emplacement mémoire d 'un registre

Nombre de cycle d'horloge : 1

Indicateurs positionnés
:                                                    

Z si résultat stocké dans le registre W ou f est nul  ( Z=1 )

d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f

Exemple :   

Dans cet exemple on charge une valeur dans un registre ici 01h  puis on décrémente cette valeur qui devient alors 00h ( flag Z = 1 dans cet exemple ) .

Reg_temp   equ    0Ah       OA correspond à l'adresse d' un registre temporaire
#define f 1                         on affecte la valeur 1 à la variable f

Movlw 01h                        on charge 01h dans le registre W
Movwf  Reg_temp            on met W dans le registre temporaire
Decf Reg_temp, f             on décrémente le contenu du registre temporaire



DECFSZ         : (DECrement F Skip if Zéro)
Décrémente f et sauter l 'instruction suivante si f = 0

(f) - 1   ->   ( d ) et sauter l' instruction suivante si f=0

f est l'emplacement mémoire d 'un registre


Nombre de cycle d'horloge : 1 ou 2

Indicateurs positionnés :  Aucun


d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f